package com.oauth.configuration;

import java.util.List;
import java.util.Map;

import javax.servlet.ServletContext;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.format.support.FormattingConversionService;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.util.PathMatcher;
import org.springframework.validation.MessageCodesResolver;
import org.springframework.validation.Validator;
import org.springframework.web.accept.ContentNegotiationManager;
import org.springframework.web.bind.support.ConfigurableWebBindingInitializer;
import org.springframework.web.method.support.CompositeUriComponentsContributor;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.HandlerMapping;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer;
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping;
import org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter;
import org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter;
import org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
import org.springframework.web.servlet.resource.ResourceUrlProvider;
import org.springframework.web.util.UrlPathHelper;

@Configuration
@EnableWebMvc
public class MvcConfig extends WebMvcConfigurationSupport {

	@Override
	public void setServletContext(ServletContext servletContext) {
		// TODO Auto-generated method stub
		super.setServletContext(servletContext);
	}

	@Override
	public void setApplicationContext(ApplicationContext applicationContext) {
		// TODO Auto-generated method stub
		super.setApplicationContext(applicationContext);
	}

	@Override
	public ApplicationContext getApplicationContext() {
		// TODO Auto-generated method stub
		return super.getApplicationContext();
	}

	@Override
	public ServletContext getServletContext() {
		// TODO Auto-generated method stub
		return super.getServletContext();
	}

	@Override
	public RequestMappingHandlerMapping requestMappingHandlerMapping() {
		// TODO Auto-generated method stub
		return super.requestMappingHandlerMapping();
	}

	@Override
	protected RequestMappingHandlerMapping createRequestMappingHandlerMapping() {
		// TODO Auto-generated method stub
		return super.createRequestMappingHandlerMapping();
	}

	@Override
	protected void addInterceptors(InterceptorRegistry registry) {
		// TODO Auto-generated method stub
		super.addInterceptors(registry);
	}

	@Override
	protected PathMatchConfigurer getPathMatchConfigurer() {
		// TODO Auto-generated method stub
		return super.getPathMatchConfigurer();
	}

	@Override
	protected void configurePathMatch(PathMatchConfigurer configurer) {
		// TODO Auto-generated method stub
		super.configurePathMatch(configurer);
	}

	@Override
	public PathMatcher mvcPathMatcher() {
		// TODO Auto-generated method stub
		return super.mvcPathMatcher();
	}

	@Override
	public UrlPathHelper mvcUrlPathHelper() {
		// TODO Auto-generated method stub
		return super.mvcUrlPathHelper();
	}

	@Override
	public ContentNegotiationManager mvcContentNegotiationManager() {
		// TODO Auto-generated method stub
		return super.mvcContentNegotiationManager();
	}

	@Override
	protected Map<String, MediaType> getDefaultMediaTypes() {
		// TODO Auto-generated method stub
		return super.getDefaultMediaTypes();
	}

	@Override
	protected void configureContentNegotiation(
			ContentNegotiationConfigurer configurer) {
		// TODO Auto-generated method stub
		super.configureContentNegotiation(configurer);
	}

	@Override
	public HandlerMapping viewControllerHandlerMapping() {
		// TODO Auto-generated method stub
		return super.viewControllerHandlerMapping();
	}

	@Override
	protected void addViewControllers(ViewControllerRegistry registry) {
		// TODO Auto-generated method stub
		super.addViewControllers(registry);
	}

	@Override
	public BeanNameUrlHandlerMapping beanNameHandlerMapping() {
		// TODO Auto-generated method stub
		return super.beanNameHandlerMapping();
	}

	@Override
	public HandlerMapping resourceHandlerMapping() {
		// TODO Auto-generated method stub
		return super.resourceHandlerMapping();
	}

	@Override
	protected void addResourceHandlers(ResourceHandlerRegistry registry) {
		// TODO Auto-generated method stub
		super.addResourceHandlers(registry);
	}

	@Override
	public ResourceUrlProvider mvcResourceUrlProvider() {
		// TODO Auto-generated method stub
		return super.mvcResourceUrlProvider();
	}

	@Override
	public HandlerMapping defaultServletHandlerMapping() {
		// TODO Auto-generated method stub
		return super.defaultServletHandlerMapping();
	}

	@Override
	protected void configureDefaultServletHandling(
			DefaultServletHandlerConfigurer configurer) {
		// TODO Auto-generated method stub
		super.configureDefaultServletHandling(configurer);
	}

	@Override
	public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
		// TODO Auto-generated method stub
		return super.requestMappingHandlerAdapter();
	}

	@Override
	protected RequestMappingHandlerAdapter createRequestMappingHandlerAdapter() {
		// TODO Auto-generated method stub
		return super.createRequestMappingHandlerAdapter();
	}

	@Override
	protected ConfigurableWebBindingInitializer getConfigurableWebBindingInitializer() {
		// TODO Auto-generated method stub
		return super.getConfigurableWebBindingInitializer();
	}

	@Override
	protected MessageCodesResolver getMessageCodesResolver() {
		// TODO Auto-generated method stub
		return super.getMessageCodesResolver();
	}

	@Override
	protected void configureAsyncSupport(AsyncSupportConfigurer configurer) {
		// TODO Auto-generated method stub
		super.configureAsyncSupport(configurer);
	}

	@Override
	public FormattingConversionService mvcConversionService() {
		// TODO Auto-generated method stub
		return super.mvcConversionService();
	}

	@Override
	protected void addFormatters(FormatterRegistry registry) {
		// TODO Auto-generated method stub
		super.addFormatters(registry);
	}

	@Override
	public Validator mvcValidator() {
		// TODO Auto-generated method stub
		return super.mvcValidator();
	}

	@Override
	protected Validator getValidator() {
		// TODO Auto-generated method stub
		return super.getValidator();
	}

	@Override
	protected void addArgumentResolvers(
			List<HandlerMethodArgumentResolver> argumentResolvers) {
		// TODO Auto-generated method stub
		super.addArgumentResolvers(argumentResolvers);
	}

	@Override
	protected void addReturnValueHandlers(
			List<HandlerMethodReturnValueHandler> returnValueHandlers) {
		// TODO Auto-generated method stub
		super.addReturnValueHandlers(returnValueHandlers);
	}

	@Override
	protected void configureMessageConverters(
			List<HttpMessageConverter<?>> converters) {
		// TODO Auto-generated method stub
		super.configureMessageConverters(converters);
	}

	@Override
	protected void extendMessageConverters(
			List<HttpMessageConverter<?>> converters) {
		// TODO Auto-generated method stub
		super.extendMessageConverters(converters);
	}

	@Override
	public CompositeUriComponentsContributor mvcUriComponentsContributor() {
		// TODO Auto-generated method stub
		return super.mvcUriComponentsContributor();
	}

	@Override
	public HttpRequestHandlerAdapter httpRequestHandlerAdapter() {
		// TODO Auto-generated method stub
		return super.httpRequestHandlerAdapter();
	}

	@Override
	public SimpleControllerHandlerAdapter simpleControllerHandlerAdapter() {
		// TODO Auto-generated method stub
		return super.simpleControllerHandlerAdapter();
	}

	@Override
	public HandlerExceptionResolver handlerExceptionResolver() {
		// TODO Auto-generated method stub
		return super.handlerExceptionResolver();
	}

	@Override
	protected void configureHandlerExceptionResolvers(
			List<HandlerExceptionResolver> exceptionResolvers) {
		// TODO Auto-generated method stub
		super.configureHandlerExceptionResolvers(exceptionResolvers);
	}

	@Override
	protected void extendHandlerExceptionResolvers(
			List<HandlerExceptionResolver> exceptionResolvers) {
		// TODO Auto-generated method stub
		super.extendHandlerExceptionResolvers(exceptionResolvers);
	}

	@Override
	protected ExceptionHandlerExceptionResolver createExceptionHandlerExceptionResolver() {
		// TODO Auto-generated method stub
		return super.createExceptionHandlerExceptionResolver();
	}

	@Override
	public ViewResolver mvcViewResolver() {
		// TODO Auto-generated method stub
		return super.mvcViewResolver();
	}

	@Override
	protected void configureViewResolvers(ViewResolverRegistry registry) {
		// TODO Auto-generated method stub
		super.configureViewResolvers(registry);
	}

	@Override
	protected void addCorsMappings(CorsRegistry registry) {
		// TODO Auto-generated method stub
		super.addCorsMappings(registry);
	}

	@Override
	public int hashCode() {
		// TODO Auto-generated method stub
		return super.hashCode();
	}

	@Override
	public boolean equals(Object obj) {
		// TODO Auto-generated method stub
		return super.equals(obj);
	}

	@Override
	protected Object clone() throws CloneNotSupportedException {
		// TODO Auto-generated method stub
		return super.clone();
	}

	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return super.toString();
	}

	@Override
	protected void finalize() throws Throwable {
		// TODO Auto-generated method stub
		super.finalize();
	}

}
